package br.com.orion.sga.model.dao;

import java.util.List;

import javax.persistence.Query;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import br.com.orion.sga.model.entities.Cidade;

@Transactional
@Repository("cidadeDao")
public class CidadeDao extends GenericDao<Cidade, Long>{

	
	/**
	 * getAllCitiesFromUf
	 * @param uf
	 * @return list of cities that belong to UF
	 */
	public List<Cidade> getAllCitiesFromUf(int uf) {
		
		String sql = "from Cidade c WHERE c.uf.id = " + uf;
		Query query = entityManager.createQuery(sql);
		
		return query.getResultList();
	}
	
	
	/**
	 * getCityByName
	 * @param city
	 * @return
	 */
	public Cidade getCityByName(String city){
		
		String sql = "from Cidade c WHERE upper(c.nome) = :city";
		Query query = entityManager.createQuery(sql);
		query.setParameter("city", city);
		
		return (Cidade) query.getSingleResult();
	}
	
}